package com.blog.web.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.blog.common.core.web.page.TableDataInfo;
import com.blog.common.domain.entity.Comment;
import com.blog.common.domain.dto.CommentDto;
import com.blog.common.domain.vo.CommentVo;
import com.blog.common.domain.vo.ReplyVo;


import java.io.Serializable;
import java.util.List;

/**
 * <p>
 * 评论 服务类
 * </p>
 *
 * @author Valerie
 * @since 2023-02-18
 */
public interface CommentService extends IService<Comment> {

    /**
     * 查看评论
     * @param commentDto 评论信息
     * @return TableDataInfo<CommentVo> 评论列表
     */
    TableDataInfo<CommentVo> listComments(CommentDto commentDto);

    /**
     * 添加评论
     *
     * @param commentDto 评论对象
     */
    void saveComment(CommentDto commentDto);

    /**
     * 点赞评论
     *
     * @param commentId 评论id
     */
    void saveCommentLike(Serializable commentId);


    /**
     * 查看评论下的回复
     *
     * @param commentId 评论id
     * @return {@link List<ReplyVo>}
     */
    List<ReplyVo> listRepliesByCommentId(Serializable commentId);
}
